package cl.ncx.cmvrc.persistence.jpa.admin.entities;

import java.util.Date;
import java.util.HashSet;
import java.util.Set;

import javax.ejb.EJBException;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.OneToMany;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

/**
 * SeguUsuario entity. @author MyEclipse Persistence Tools
 */
@Entity
@Table(name = "segu_usuario", schema = "seguridad")
@NamedQueries({
	@NamedQuery(name="SeguUsuario.findAll", query="SELECT su FROM SeguUsuario su"),
	@NamedQuery(name="SeguUsuario.findByNombre", query="SELECT su FROM SeguUsuario su WHERE su.usuaDscNombre = :nombre AND su.usuaBooEliminado = 0")})
@SequenceGenerator(name = "segu_usuario_seq", sequenceName = "seguridad.segu_usuario_perfil_usua_perfil_codigo_seq")
public class SeguUsuario implements java.io.Serializable {

	// Fields


	private static final long serialVersionUID = 2556207409637350318L;
	private Long usuaCodUsuario;
	private String usuaDscNombre;
	private String usuaDscNombreFull;
	private String usuaDscEmail;
	private Integer usuaBooCodBloqueo;
	private Integer usuaNumIntentos;
	private Date usuaFechaVgca;
	private Date usuaFechaVcto;
	private String usuaPassword;
	private Integer usuaBooEliminado;
	private Set<SeguUsuarioPerfil> seguUsuarioPerfils = new HashSet<SeguUsuarioPerfil>(
			0);

	// Constructors

	/** default constructor */
	public SeguUsuario() {
	}

	/** minimal constructor */
	public SeguUsuario(Long usuaCodUsuario, String usuaDscNombre,
			String usuaDscNombreFull, Integer usuaBooCodBloqueo,
			Integer usuaNumIntentos) {
		this.usuaCodUsuario = usuaCodUsuario;
		this.usuaDscNombre = usuaDscNombre;
		this.usuaDscNombreFull = usuaDscNombreFull;
		this.usuaBooCodBloqueo = usuaBooCodBloqueo;
		this.usuaNumIntentos = usuaNumIntentos;
	}

	/** full constructor */
	public SeguUsuario(Long usuaCodUsuario, String usuaDscNombre,
			String usuaDscNombreFull, String usuaDscEmail,
			Integer usuaBooCodBloqueo, Integer usuaNumIntentos,
			Date usuaFechaVgca, Date usuaFechaVcto, String usuaPassword,
			Set<SeguUsuarioPerfil> seguUsuarioPerfils) {
		this.usuaCodUsuario = usuaCodUsuario;
		this.usuaDscNombre = usuaDscNombre;
		this.usuaDscNombreFull = usuaDscNombreFull;
		this.usuaDscEmail = usuaDscEmail;
		this.usuaBooCodBloqueo = usuaBooCodBloqueo;
		this.usuaNumIntentos = usuaNumIntentos;
		this.usuaFechaVgca = usuaFechaVgca;
		this.usuaFechaVcto = usuaFechaVcto;
		this.usuaPassword = usuaPassword;
		this.seguUsuarioPerfils = seguUsuarioPerfils;
	}

	// Property accessors
	@Id
	@Column(name = "usua_cod_usuario", unique = true, nullable = false)
	@GeneratedValue(strategy=GenerationType.SEQUENCE, generator = "segu_usuario_seq")
	public Long getUsuaCodUsuario() {
		return this.usuaCodUsuario;
	}

	public void setUsuaCodUsuario(Long usuaCodUsuario) {
		this.usuaCodUsuario = usuaCodUsuario;
	}

	@Column(name = "usua_dsc_nombre", nullable = false, length = 15)
	public String getUsuaDscNombre() {
		return this.usuaDscNombre;
	}

	public void setUsuaDscNombre(String usuaDscNombre) {
		this.usuaDscNombre = usuaDscNombre;
	}

	@Column(name = "usua_dsc_nombre_full", nullable = false, length = 50)
	public String getUsuaDscNombreFull() {
		return this.usuaDscNombreFull;
	}

	public void setUsuaDscNombreFull(String usuaDscNombreFull) {
		this.usuaDscNombreFull = usuaDscNombreFull;
	}

	@Column(name = "usua_dsc_email", length = 50)
	public String getUsuaDscEmail() {
		return this.usuaDscEmail;
	}

	public void setUsuaDscEmail(String usuaDscEmail) {
		this.usuaDscEmail = usuaDscEmail;
	}

	@Column(name = "usua_boo_cod_bloqueo", nullable = false)
	public Integer getUsuaBooCodBloqueo() {
		return this.usuaBooCodBloqueo;
	}

	public void setUsuaBooCodBloqueo(Integer usuaBooCodBloqueo) {
		this.usuaBooCodBloqueo = usuaBooCodBloqueo;
	}

	@Column(name = "usua_num_intentos", nullable = false)
	public Integer getUsuaNumIntentos() {
		return this.usuaNumIntentos;
	}

	public void setUsuaNumIntentos(Integer usuaNumIntentos) {
		this.usuaNumIntentos = usuaNumIntentos;
	}

	@Temporal(TemporalType.DATE)
	@Column(name = "usua_fecha_vgca", length = 13)
	public Date getUsuaFechaVgca() {
		return this.usuaFechaVgca;
	}

	public void setUsuaFechaVgca(Date usuaFechaVgca) {
		this.usuaFechaVgca = usuaFechaVgca;
	}

	@Temporal(TemporalType.DATE)
	@Column(name = "usua_fecha_vcto", length = 13)
	public Date getUsuaFechaVcto() {
		return this.usuaFechaVcto;
	}

	public void setUsuaFechaVcto(Date usuaFechaVcto) {
		this.usuaFechaVcto = usuaFechaVcto;
	}

	@Column(name = "usua_password", length = 50)
	public String getUsuaPassword() {
		return this.usuaPassword;
	}

	public void setUsuaPassword(String usuaPassword) {
		this.usuaPassword = usuaPassword;
	}

	@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.EAGER, mappedBy = "seguUsuario")
	public Set<SeguUsuarioPerfil> getSeguUsuarioPerfils() {
		return this.seguUsuarioPerfils;
	}

	public void setSeguUsuarioPerfils(Set<SeguUsuarioPerfil> seguUsuarioPerfils) {
		this.seguUsuarioPerfils = seguUsuarioPerfils;
	}

	public void setUsuaBooEliminado(Integer usuaBooEliminado) {
		this.usuaBooEliminado = usuaBooEliminado;
	}
	@Column(name = "usua_boo_eliminado", nullable = false)
	public Integer getUsuaBooEliminado() {
		return usuaBooEliminado;
	}
	
	
	
	/**
	 * Metodos de transaccion
	 */
	
	public String validaUser(String val) throws EJBException{
		System.out.print(val);
		return "hola";
		
	}

}